Due to recent advances in information technology and the spread of data networks, it is increasingly common and desirable for different systems to share or to transfer data among themselves. It is very often the case that different systems use different data structures to describe similar entities. In such case, in order for the data to be successfully exchanged, the data must at some point be translated from the data structure of the first entity to that of the second. FIG. 1 shows a conventional prior art solution. As shown in FIG. 1, a first system 110, a second system 120, and a third system 130 are provided, each system having its own native data structure for describing a given entity. In a case where it is necessary for each system to send data to and receive data from each of the other systems, the prior art solution is to provide each system with the capability of formulating data transmissions according to the data structure of the intended destination system. Thus, as shown in FIG. 1, the first system 110 is provided with a converter 111 for formulating transmissions in the data structure format of the second system 120 and also is provided with a converter 112 for formulating transmissions in the data structure format of the third system 130. Similarly, the second system 120 is provided with a converter 121 for formulating transmissions in the data structure format of the first system 110 and also is provided with a converter 122 for formulating transmissions in the data structure format of the third system 130. Furthermore, the third system 130 is provided with a converter 131 for formulating transmissions in the data structure format of the first system 110 and also is provided with a converter 132 for formulating transmissions in the data structure format of the second system 120. While in the simple three-system environment shown in FIG. 1 the described approach is not unduly onerous, it will be appreciated by one skilled in the art that the number of converter modules 111, 112, 121, 122, 131, 132 is equal to n(n−1), where n is the number of systems. Thus, with an increasing number of systems, the number of converter modules quickly may become unmanageable. Furthermore, the converter modules intended to generate data structures in the format suited to one particular system are distributed among all of the other systems, and accordingly there is a considerable maintenance burden in terms of updating converter modules to reflect changes in the data structure used by a particular system.
Alternative approaches may entail providing each system with a converter module able to receive data according to the data structure of another system, and to convert it into the structure of the local system. However, this approach is the exact reverse of that described with respect to FIG. 1 and thus is susceptible to all of the same drawbacks.
An Enterprise Service Bus (ESB) is a flexible connectivity infrastructure for integrating applications and services. An ESB can power Services Oriented Architecture (SOA) by reducing the number, size, and complexity of interfaces between applications and services. An ESB infrastructure routes messages between services, converts transport protocols between requester and service, transforms message formats between requester and service, and handles business events from disparate sources.
An ESB can simplify the IT infrastructure required to connect programs together. An ESB can make it possible to add new services or make changes to existing services with little or no impact to the use of existing services. While the various embodiments described herein are similar to an ESB infrastructure in various ways, the various embodiments provide capabilities that are not available with an ESB infrastructure.